import {classicBeh} from "../classic-beh.js";

let mMgr = wx.getBackgroundAudioManager()

Component({
  /**
   * 组件的属性列表
   */
  behaviors: [classicBeh],
  properties: {
    src: String,
    title: String
  },

  /**
   * 组件的初始数据
   */
  data: {
    playing: false,
    pauseSrc: 'images/player@pause.png',
    playSrc: 'images/player@play.png',
  },

  attached: function(event){
    this._recoverStatus();
    this._monitorSwitch();
  },

  detached: function(event){
    // wxif会触发detached,hidden不会
    // mMgr.stop()
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onPlay: function (event) {
      if(!this.data.playing){
        this.setData({
          playing:true,
          title: 'haha'
        });
        mMgr.src = this.properties.src;
      }else{
        this.setData({
          playing:false,
        });
        mMgr.pause();
      }
      mMgr.title = this.properties.title;
    },

    //恢复状态
    _recoverStatus: function () {
      if(mMgr.paused){//小程序中没有音乐在播放
        this.setData({
          playing:false
        });
        return;
      }
      if(mMgr.src == this.properties.src){//当前播放的音乐和当前页面的音乐一致(mMgr.src就代表当前播放的音乐)
        this.setData({
          playing:true
        });
      }
    },

    _monitorSwitch: function () {
      // 监听播放对象，开始播放
      mMgr.onPlay(()=>{
        this._recoverStatus()
      });
      // 监听播放对象，暂停播放
      mMgr.onPause(()=>{
        this._recoverStatus()
      });
      // 监听播放对象，停止事件
      mMgr.onStop(()=>{
        this._recoverStatus()
      });
      // 监听播放对象，自然播放结束事件
      mMgr.onEnded(()=>{
        this._recoverStatus()
      });
    }
  }
})
